An efficient ActionScript 3.0 Just-In-Time compiler implementation
نویسندگان
چکیده
Adobe Flash: the current de facto standard for rich content web applications is powered by an ECMAScript derived language called ActionScript. The bytecode for the language is designed to run on a stack based virtual machine. We introduce a Just in Time compiler and runtime environment for such bytecode. The LLVM framework is used to generate optimized native assembly from an intermediate representation, generated from the bytecode while optimizing stack traffic, local variable accesses and exploiting implicit type information.
منابع مشابه
A First Implementation of Modular Smalltalk
A "first" implementation of the Modular Smalltalk object-oriented programming language is presented. The implementation includes an object-oriented parser, object-oriented representation for code fragments and an object-oriented C-code generator, all implemented in Smalltalk-80. This implementation validates two of the five design principles of the Modular Smalltalk language and provides a vehi...
متن کاملInterpreter Exploitation
As remote exploits further dwindle and perimeter defenses become the standard, remote client-side attacks are becoming the standard vector for attackers. Modern operating systems have quelled the explosion of client-side vulnerabilities using mitigation techniques such as data execution prevention (DEP) and address space layout randomization (ASLR). This work illustrates two novel techniques to...
متن کاملOverview of the IBM Java Just - in - Time
We present the design and implementation of several optimizations and techniques included in the latest IBM Java Just-in-Time (JIT) Compiler. We first discuss some of the modifications we have applied to Sun Microsystems’ reference implementation of the Java Virtual Machine (JVM) Specification to increase the performance, including a change in the object layout. We then describe each of the opt...
متن کاملInline Caching Meets Quickening
Inline caches effectively eliminate the overhead implied by dynamic typing. Yet, inline caching is mostly used in code generated by just-in-time compilers. We present efficient implementation techniques for using inline caches without dynamic translation, thus enabling future interpreter implementers to use this important optimization technique— we report speedups of up to a factor of 1.71—with...
متن کاملJITDefender: A Defense against JIT Spraying Attacks
JIT spraying is a new code-reuse technique to attack virtual machines based on JIT (Just-in-time) compilation. It has proven to be capable of circumventing the defenses such as data execution prevention (DEP) and address space layout randomization(ASLR), which are effective for preventing the traditional code injection attacks. In this paper, we describe JITDefender, an enhancement of standard ...
متن کامل